<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
 * 这个文件是与book相关的控制器
 */
/**
 * @see Zend_Loader 调用Zend的API，在本网站中主要实现同学添加图书时从google books 自动添加图书信息
 */
require_once 'Zend/Loader.php';

/**
 * @see Zend_Gdata_Books
 */
Zend_Loader::loadClass('Zend_Gdata_Books');

class Book extends Controller {
    //var $totalrows=-1;
    function Book() {
        parent::Controller();
        $this->load->model("book_model");
        $this->load->model("user_model");
        $this->load->model('post_model');
        $this->load->helper('url');
        $this->load->library('mypagination');
        //$this->output->enable_profiler(TRUE);
    }

    /**
     * 用户添加图书信息
     */
    function addbook(){
        $this->load->library('session');
        $siteurl=site_url();
        $currentPage=$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
        if(($this->session->userdata('username'))==""){   
            $loginPage=$siteurl.'/user/login?continue=yes&currentpage='.urlencode($currentPage);
            Header("Location: $loginPage");
        }
        $data['activetab']="none";
        $data['user_status']=$this->user_model->get_user_status(); //获取用户登录状态
        $data['baseurl']=base_url();
        $data['title']="添加图书-书易";

        //如果数据库中已经存在这本书，直接跳到相应页面。
        $isbn=$_GET['isbn'];
        if($isbn!=null&&$isbn{0}>='0'&&$isbn{0}<='9'&& strlen($isbn)>=10){
	      $digits=split("-",$isbn);
          $newword="";
          foreach($digits as $digit){
                 $newword.=$digit;
            }
          $isbn=$newword;
          if($this->book_model->if_isbn10_exist($isbn)==1||$this->book_model->if_isbn13_exist($isbn)==1){ //已经存在这本书
            $link=site_url()."/bookiki/search?go=yes&inputString=".$isbn;
            header("location: $link");
           }
           $books = new Zend_Gdata_Books();
           $query = $books->newVolumeQuery();
           $query->setQuery($isbn);
           $query->setMaxResults(10);
           $data['feed'] = $books->getVolumeFeed($query);
        }
        else{
            $data['feed']=null;
        }
        $data['error']="none";
        $this->load->view('addbook_view',$data);		//载入添加图书页面视图
    }

    /**
     * 检查数据库中是否有10位ISBN相同的图书,如果数据库中已经存在，返回1.
     */
    function  is_isbn10_usable(){
        $isbn10=$_GET['isbn10'];
        $status=$this->book_model->if_isbn10_exist($isbn10);
         if($status==1){
                echo "1"; //如果isbn存在
            }
            else{
                echo "0";
            }
    }

   /**
     * 检查数据库中是否有13位ISBN相同的图书，如果数据库中已经存在，返回1.
     */
   function  is_isbn13_usable(){
        $isbn13=$_GET['isbn13'];
        $status=$this->book_model->if_isbn13_exist($isbn13);
         if($status==1){
                echo "1"; //如果isbn13存在
            }
            else{
                echo "0";
            }
    }



    /**
     * 执行往数据库添加图书的操作
     */
    function do_addbook(){
        $bookdata['isbn10']=$_POST['isbn10'];
        $bookdata['isbn13']=$_POST['isbn13'];
        $bookdata['addby_userid']=$this->session->userdata('username');
        $bookdata['title']=$_POST['title'];
        $bookdata['author']=$_POST['author'];
        $bookdata['publisher']=$_POST['publisher'];
        $bookdata['en_title']=$_POST['en_title'];
        $bookdata['category_1']=$_POST['category_1'];
        $bookdata['category_2']=$_POST['category_2'];
        //如果用户未选择分类，category_1,category_2 插入时为0,代表未分类；同时图片存储到./uploads/temp文件夹
        $bookdata['pages']=$_POST['pages'];
        $bookdata['year']=$_POST['year'];
        $bookdata['month']=$_POST['month'];
        $bookdata['edition']=$_POST['edition'];
        $bookdata['price']=$_POST['price'];
        $bookdata['language']=$_POST['language'];
        if($bookdata['category_1']!=null)
           $folder=chr(ord("A")+$bookdata['category_1']-1);
        else
           $folder="temp";
        if($bookdata['isbn13']!=null)
           $bookdata['pic']=$folder."/".$bookdata['isbn13'];
        else
           $bookdata['pic']=$folder."/".$bookdata['isbn10'];
        $this->load->model('book_model');          //载入用户模型
        $_10usable=$this->book_model->if_isbn10_exist($bookdata['isbn10']);
        $_13usable=$this->book_model->if_isbn13_exist($bookdata['isbn13']);

        if($_POST['imagelink']!=null){
           $bookdata['pic'].='.jpg';
           $imgpath='./uploads/'.$bookdata['pic'];
           copy ($_POST['imagelink'], $imgpath);
        }
        else{
            if($bookdata['isbn13']!=null)
                $config['file_name']=$bookdata['isbn13'];
            else
                $config['file_name']=$bookdata['isbn10'];
            $config['upload_path'] = './uploads/'.$folder;
            $config['allowed_types'] = 'gif|jpg|png|bmp';
            $config['max_size']	= '200';
            $config['max_width']  = '500';
            $config['max_height']  = '500';
            $this->load->library('upload', $config);
            if($this->upload->do_upload()){
               $uploaddata=$this->upload->data();
               $bookdata['pic'].=$uploaddata['file_ext'];
            }
        }
        if(($bookdata['isbn10']!=null||$bookdata['isbn13']!=null)&&$_10usable==0&&$_13usable==0&&$bookdata['title']!=null&&$bookdata['author']!=null&&$bookdata['publisher']!=null){
                $status=$this->book_model->insert_book($bookdata);  //调用用户模型中的函数，并将参数以数组的形式传递过去
                if($status==1){  //插入图书信息成功，转到新添加图书页面
                     if($bookdata['isbn10']!=null)
                        $link=site_url()."/bookiki/search?go=yes&inputString=".$bookdata['isbn10'];
                     else
                        $link=site_url()."/bookiki/search?go=yes&inputString=".$bookdata['isbn13'];
                     header("location: $link");
                }
                else{
                      $data['error']="插入图书信息失败，请检查后提交";
                      $data['feed']=null;
                      $data['activetab']="none";
                      $data['title']="添加书籍";
                      $data['user_status']=$this->user_model->get_user_status(); //获取用户登录状态
                      $this->load->view('addbook_view',$data);
                }
       }
       else{
              $data['error']="注意：";
              if($bookdata['title']==null)
                $data['error'].="书名不能为空；";
              if($bookdata['author']==null)
                $data['error'].="作者不能为空；";
              if($bookdata['publisher']==null)
                $data['error'].="出版社不能为空；";
              if($bookdata['isbn10']==null||$bookdata['isbn13']==null||$_10usable==0||$_13usable==0)
                $data['error'].="10位ISBN与13位ISBN至少须填写一个；或者数据库中已经存在这本书。";
              $data['feed']=null;
              $data['activetab']="none";
              $data['title']="添加书籍";
              $data['user_status']=$this->user_model->get_user_status(); //获取用户登录状态
              $this->load->view('addbook_view',$data);
        }
    }

    /**
     * 分类展示书籍列表。目录由catelevel和cateid共同定位。cateleval表示是第几层目录，现在分别由两层（1，2），第一层更大。cateid表示在相应的目录层次下目录的编号。
     * 目录编号对应的具体目录名称可以在数据库中查看到。
     */
    function getbook_bycategory(){
        $catelevel=$this->input->get('catelevel',TRUE);
        $cateid=$this->input->get('cateid',TRUE);
        //以下配置翻页函数
        if(isset($_GET['curpage']))
           $offset=$_GET['curpage'];
        else $offset=0;
        if(!isset($_GET['totalrows'])){
           $result=  $this->book_model->bookByCategory(1,$catelevel,$cateid,$offset,12);
           $config['total_rows']=$result[0]->number;
        }
        else{
           $config['total_rows'] =$_GET['totalrows'];
        }
        $link="book/getbook_bycategory?catelevel=$catelevel&cateid=$cateid&totalrows={$config['total_rows']}";
        $config['base_url'] = site_url($link);
        $config['page_query_string'] = TRUE;
        
       
        //$config['uri_segment'] = 3;  // 表示第 3 段 URL 为当前页数，如 index.php/控制器/方法/页数，如果表示当前页的 URL 段不是第 3 段，请修改成需要的数值。
        $config['full_tag_open'] = '<p>';
        $config['full_tag_close'] = '</p>';
        $this->mypagination->initialize($config);
        $data['bookarray'] = $this->book_model->bookByCategory(0,$catelevel,$cateid,$offset,12);

        $data['title'] = "书易二手书分类结果：";
        $data['activetab']="none";
		$data['user_status']=$this->user_model->get_user_status(); //获取用户登录状态
        $this->load->view('bookiki/search', $data);
    }



}
?>